package dao;

/**
 *
 * @author Juan Sebastian Hernández Serrato
 */
public class JPADAOFactory extends AbstractDAOFactory{

    private static JPADAOFactory instance = null;
    
    private JPADAOFactory(){}
    
    public static JPADAOFactory getInstance(){
        if (instance == null) {
            return new JPADAOFactory();
        }
        return instance;
    }
    
    private AcompananteDAO acompananteDAO;
    private ActividadDAO actividadDAO;
    private FormularioDAO formularioDAO;
    private PuntoDeEncuentroDAO puntoDeEncuentroDAO;
    private TipoDeContratacionDAO tipoDeContratacionDAO;
    private UsuarioRegistradoDAO usuarioRegistradoDAO;

    @Override
    public AcompananteDAO getAcompananteDAO() {
        if (acompananteDAO == null) {
            acompananteDAO = new AcompananteDAO();
        }
        return acompananteDAO;
    }

    @Override
    public ActividadDAO getActividadDAO() {
        if (actividadDAO == null) {
            actividadDAO = new ActividadDAO();
        }
        return actividadDAO;
    }

    @Override
    public FormularioDAO getFormularioDAO() {
        if (formularioDAO == null) {
            formularioDAO = new FormularioDAO();
        }
        return formularioDAO;
    }

    @Override
    public PuntoDeEncuentroDAO getPuntoDeEncuentroDAO() {
        if (puntoDeEncuentroDAO == null) {
            puntoDeEncuentroDAO = new PuntoDeEncuentroDAO();
        }
        return puntoDeEncuentroDAO;       
    }

    @Override
    public TipoDeContratacionDAO getTipoDeContratacionDAO() {
        if (tipoDeContratacionDAO == null) {
            tipoDeContratacionDAO = new TipoDeContratacionDAO();
        }
        return tipoDeContratacionDAO;
    }

    @Override
    public UsuarioRegistradoDAO getUsuarioRegistradoDAO() {
        if (usuarioRegistradoDAO == null) {
            usuarioRegistradoDAO = new UsuarioRegistradoDAO();
        }
        return usuarioRegistradoDAO;
    }
    
}
